/**
 * 
 */
package com.quiz.model;

import java.io.Serializable;


/**
 * Class to describe a section of questions.
 * @author Brian Boyle
 * Apr 9, 2012
 */
public class Section implements Serializable {


    private static final long serialVersionUID = 1L;
    private long id;
    private String name;
    private int topScore;
    private String status;
    private int scoreNeeded;
    private String description;
    private String imageName;
    private int numberOfQuestions;
    private int pointsPerQuestion;
    private int timeAllowed;
    private int lifeBonusPoints;
    private int firstGuessBonusPoint;
    private int speedBonus;

    public static final String TABLE_NAME = "SECTION";
    public static final String COLUMN_ID = "ID";
    public static final String COLUMN_NAME = "NAME";
    public static final String COLUMN_TOPSCORE = "TOPSCORE";
    public static final String COLUMN_STATUS = "STATUS";
    public static final String COLUMN_SCORE_NEEDED = "SCORE_NEEDED";
    public static final String COLUMN_DESCRIPTION = "DESCRIPTION";
    public static final String COLUMN_IMAGE_NAME = "IMAGE_NAME";
    public static final String COLUMN_NUM_QUESTIONS = "NUMBER_OF_QUESTIONS";
    public static final String COLUMN_POINTS_PER_QUESTION = "POINTS_PER_QUESTION";
    public static final String COLUMN_TIME_ALLOWED = "TIME_ALLOWED";
    public static final String COLUMN_LIFE_BONUS_POINTS = "LIFE_BONUS_POINTS";
    public static final String COLUMN_FIRST_GUESS_BONUS_POINTS = "FIRST_GUESS_BONUS_POINTS";
    public static final String COLUMN_SPEED_BONUS = "SPEED_BONUS";

    /**
     * @param id
     * @param name
     * @param topScore
     * @param status
     * @param scoreNeeded
     * @param description
     * @param imageName
     */
    public Section(
            long id,
            String name,
            int topScore,
            String status,
            int scoreNeeded,
            String description,
            String imageName,
            int numberOfQuestions,
            int pointsPerQuestion,
            int timeAllowed,
            int lifeBonusPoints,
            int firstGuessBonusPoints,
            int speedBonus) {
        this.id = id;
        this.name = name;
        this.topScore = topScore;
        this.status = status;
        this.scoreNeeded = scoreNeeded;
        this.description = description;
        this.imageName = imageName;
        this.numberOfQuestions = numberOfQuestions;
        this.pointsPerQuestion = pointsPerQuestion;
        this.timeAllowed = timeAllowed;
        this.lifeBonusPoints = lifeBonusPoints;
        this.firstGuessBonusPoint = firstGuessBonusPoints;
        this.speedBonus = speedBonus;
    }

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the topScore
     */
    public int getTopScore() {
        return topScore;
    }

    /**
     * @param topScore the topScore to set
     */
    public void setTopScore(int topScore) {
        this.topScore = topScore;
    }

    /**
     * @return the status
     */
    public String getStatus() {
        return status;
    }

    /**
     * @param status the status to set
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * @return the scoreNeeded
     */
    public int getScoreNeeded() {
        return scoreNeeded;
    }

    /**
     * @param scoreNeeded the scoreNeeded to set
     */
    public void setScoreNeeded(int scoreNeeded) {
        this.scoreNeeded = scoreNeeded;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the imageName
     */
    public String getImageName() {
        return imageName;
    }

    /**
     * @param imageName the imageName to set
     */
    public void setImageName(String imageName) {
        this.imageName = imageName;
    }


    /**
     * @return the numberOfQuestions
     */
    public int getNumberOfQuestions() {
        return numberOfQuestions;
    }


    /**
     * @param numberOfQuestions the numberOfQuestions to set
     */
    public void setNumberOfQuestions(int numberOfQuestions) {
        this.numberOfQuestions = numberOfQuestions;
    }


    /**
     * @return the pointsPerAnswer
     */
    public int getPointsPerQuestion() {
        return pointsPerQuestion;
    }


    /**
     * @param pointsPerAnswer the pointsPerAnswer to set
     */
    public void setPointsPerQuestion(int pointsPerAnswer) {
        this.pointsPerQuestion = pointsPerAnswer;
    }


    /**
     * @return the timeAllowed
     */
    public int getTimeAllowed() {
        return timeAllowed;
    }


    /**
     * @param timeAllowed the timeAllowed to set
     */
    public void setTimeAllowed(int timeAllowed) {
        this.timeAllowed = timeAllowed;
    }


    /**
     * @return the lifeBonusPoints
     */
    public int getLifeBonusPoints() {
        return lifeBonusPoints;
    }


    /**
     * @param lifeBonusPoints the lifeBonusPoints to set
     */
    public void setLifeBonusPoints(int lifeBonusPoints) {
        this.lifeBonusPoints = lifeBonusPoints;
    }


    /**
     * @return the firstGuessBonusPoint
     */
    public int getFirstGuessBonusPoint() {
        return firstGuessBonusPoint;
    }


    /**
     * @param firstGuessBonusPoint the firstGuessBonusPoint to set
     */
    public void setFirstGuessBonusPoint(int firstGuessBonusPoint) {
        this.firstGuessBonusPoint = firstGuessBonusPoint;
    }


    /**
     * @return the speedBonus
     */
    public int getSpeedBonus() {
        return speedBonus;
    }


    /**
     * @param speedBonus the speedBonus to set
     */
    public void setSpeedBonus(int speedBonus) {
        this.speedBonus = speedBonus;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return "Section [id="
                + id
                + ", name="
                + name
                + ", topScore="
                + topScore
                + ", status="
                + status
                + ", scoreNeeded="
                + scoreNeeded
                + ", description="
                + description
                + ", imageName="
                + imageName
                + ", numberOfQuestions="
                + numberOfQuestions
                + ", pointsPerQuestion="
                + pointsPerQuestion
                + ", timeAllowed="
                + timeAllowed
                + ", lifeBonusPoints="
                + lifeBonusPoints
                + ", firstGuessBonusPoint="
                + firstGuessBonusPoint
                + ", speedBonus="
                + speedBonus
                + "]";
    }

}
